package test.enba.msg.controller;

import com.enba.boot.msg.MessagePushHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/msg")
public class MsgController {

  @Autowired private MessagePushHelper messagePushHelper;

  /**
   * 推送消息到钉钉
   *
   * @param message
   * @return
   */
  @PostMapping("/push-ding")
  public String pushDing(String message) {
    // 推送钉钉消息，不关注发送消息结果
    messagePushHelper.pushDingTalk("这是一条测试的钉钉消息异常：" + message);

    // 推送钉钉消息，带回调，关注发送消息结果
    String callback =
        messagePushHelper.pushDingTalkCallback("这是一条测试的钉钉消息异常：" + message, (ret) -> ret);
    System.out.println("回调结果：" + callback);

    return "success";
  }

  /**
   * 推送消息到企微
   *
   * @param message
   * @return
   */
  @PostMapping("/push-wechat")
  public String pushWechat(String message) {
    // 推送企业微信消息，不关注发送消息结果
    messagePushHelper.pushWechat("这是一条测试的企业微信消息异常：" + message);

    // 推送企业微信消息，带回调，关注发送消息结果
    String callback =
        messagePushHelper.pushWechatTalkCallback("这是一条测试的企业微信消息异常：" + message, (ret) -> ret);
    System.out.println("回调结果：" + callback);

    return "success";
  }

  /**
   * 推送消息到qq邮箱
   *
   * @param message
   * @return
   */
  @PostMapping("/push-mail")
  public String pushQqMail(String message) {
    // 推送消息到qq邮箱，不关注发送消息结果
    messagePushHelper.pushQqMail("这是一条测试的发送QQ邮箱的消息：" + message);

    return "success";
  }
}
